import numpy as np
import matplotlib.pyplot as plt
"""
画出散点图、柱状图、等高线图和image图片
"""
# 1.散点图：plt.scatter()
# 生成1024个呈标准正态分布的二维数据组 (平均数是0，方差为1)
# 作为一个数据集，并图像化这个数据集。每一个点的颜色值用T来表示：
x = np.random.normal(0,1,1024)
y = np.random.normal(0,1,1024)
t = np.arctan2(y,x)
# print(t)
# 数据集生成完毕，现在来用 plt.scatter 画出这个点集，输入X和Y作为location，
# size=75，颜色为T，color map用默认值，透明度alpha 为 50%。
# x轴显示范围定位(-1.5，1.5)，并向xtick()函数传入空集()来隐藏x坐标轴，y轴同理：
plt.figure(1)
plt.scatter(x,y,s=75,c=t,alpha=0.6)
plt.xlim(-1.5,1.5)
plt.xticks(()) # 隐藏坐标轴
plt.ylim(-1.5,1.5)
plt.yticks(())
plt.show()
# # 2.柱状图：plt.bar()
# # 尽量使用柱状图来代替折线图与饼图
# #   (1)生成画图数据，向上向下分别生成2组数据，X为0到11的整数 ，Y是相应的均匀分布的随机数据
# x = np.arange(12)
# y1 = (1-x/float(12))*np.random.uniform(.5,1.0,12)
# y2 = (1-x/float(12))*np.random.uniform(.5,1.0,12)
# # 绘制柱状图
# plt.figure(2)
# plt.bar(x,+y1)
# plt.bar(x,-y2)
# plt.xlim(-0.5,12)
# plt.xticks(()) # 隐藏坐标轴
# plt.ylim(-1.25,1.25)
# plt.yticks(())
# # 用 plt.bar 函数中的facecolor参数设置柱状图主体颜色，用edgecolor参数设置边框颜色；
# # 而函数 plt.text 可以帮助我们在柱体上方（下方）加上数值：
# # 用%.2f保留两位小数，用ha='center'设置横向居中对齐，用va='bottom'设置纵向底部（顶部）对齐。
# plt.bar(x,+y1,facecolor='#FFCCCC',edgecolor='white')
# plt.bar(x,-y2,facecolor='#6699CC',edgecolor='white')
# for x, y in zip(x,y1):
#     # ha: horizontal alignment
#     # va: vertical alignment
#     plt.text(x, y , '%.2f' % y, ha='center', va='bottom')
#
# for x, y in zip(x,-y2):
#     # ha: horizontal alignment
#     # va: vertical alignment
#     plt.text(x, -y , '%.2f' % y, ha='center', va='top')
# plt.show()
# 3.等高线图：plt.contourf()
#
# 4.在等高线图中增加label：plt.clabel()
#
# 5.矩阵画图：plt.imshow()
#
# 6.在随机矩阵图中增加colorbar：plt.colorbar()